/**
 * 扩展 easyui 的 linkbutton 控件
 */

(function($){

    // TODO:注册新控件的代码还有待优化
    /* 注册 addbutton 控件 */
    $.parser.plugins.push("addbutton");
    $.fn.addbutton=function(options){
        buttonPlugin(options,this,"增加","icon-add");
    }

    /* 注册 removebutton 控件 */
    $.parser.plugins.push("removebutton");
    $.fn.removebutton=function(options){
        buttonPlugin(options,this,"删除","icon-remove");
    }

    /* 注册 editbutton 控件 */
    $.parser.plugins.push("editbutton");
    $.fn.editbutton=function(options){
        buttonPlugin(options,this,"修改","icon-edit");
    }

    /* 注册 querybutton 控件 */
    $.parser.plugins.push("querybutton");
    $.fn.querybutton=function(options){
        buttonPlugin(options,this,"查询","icon-query");
    }

    /* 注册 clearbutton 控件  */
    $.parser.plugins.push("clearbutton");
    $.fn.clearbutton=function(options){
        buttonPlugin(options,this,"清空","icon-clear");
    }

    /* 注册 logoutbutton 控件 */
    $.parser.plugins.push("logoutbutton");
    $.fn.logoutbutton=function(options){
        buttonPlugin(options,this,"注销","icon-logout");
    }

    /**
     * 按钮插件
     * @param options
     * @param ths
     * @param text
     * @param iconCls
     */
    function buttonPlugin(options,ths,text,iconCls){
        // 当options为字符串时，说明执行的是该插件的方法
        if (typeof options == "string") {
            return $.fn.linkbutton.apply(this,arguments);
        }
        //当该组件在一个页面出现多次时，this是一个集合，故需要通过each遍历
        return ths.each(function(){
            var jq=$(this);
            var opts = $.fn.linkbutton.parseOptions(this);
            var newopts= $.extend(true,{
                text:text,
                iconCls:iconCls
            },opts);
            $.fn.linkbutton.call(jq,newopts);
        });
    }

})(jQuery);